Image processing apparatuses using an electrophotographic method such as laser beam printers and the like have been prevalently used as output apparatuses of computers. Each of these image processing apparatuses receives and interprets a drawing command from a host computer or the like to generate a bitmap image, and then executes output processing on a sheet surface. When an image input apparatus such as a scanner, digital camera, or the like is connected, the image processing apparatus also has a function of applying predetermined image processing to a bitmap image input from such image input apparatus, and executing output processing on the sheet surface.
FIG. 1 is a block diagram showing the functional arrangement of an image processing apparatus. Processing for receiving a drawing command from a host computer and printing an image based on the drawing command will be described below using FIG. 1.
Application software runs on a host computer 101. The user of the host computer 101 creates a page layout document, wordprocessor document, graphic document, and the like using the application software. Digital document data created using the application software is transmitted to a printer driver (not shown) to generate a drawing command based on the digital document data. The printer driver generally describes the drawing command using a description language so as to create page image data of a page description language (PDL) or the like. The drawing command normally includes image, graphics, text drawing instructions and the like.
The drawing command generated by the printer driver is transferred to an image processing apparatus 103 via a network or the like. The image processing apparatus 103 comprises a drawing command processor 105, input image processor 106, output image processor 107, storage unit 108, and the like.
The drawing command processor 105 generates drawing objects by interpreting the drawing command received from the host computer 101, and generates a bitmap image by rasterizing the drawing objects.
The output image processor 107 converts the bitmap image into an image format which can be processed by a printer engine 111 of an image output apparatus 104. Furthermore, when the bitmap image generated by the drawing command processor 105 is a multi-grayscale RGB image, the output image processor 107 executes color conversion processing for converting RGB values into CMYK values using a lookup table and the like. Also, the output image processor 107 executes pseudo halftone processing for converting the multi-grayscale image into a low-grayscale image using dithering or the like.
The image output apparatus 104 has the printer engine 111, receives image data of the predetermined image format from the image processing apparatus 103, and prints it on a sheet surface. Normally, in order to stably express a halftone image by the printer engine 111, the multi-grayscale image must be converted into a low-grayscale image such as two gray levels, four gray levels, 16 gray levels, or the like. Also, in general, input data to the printer engine 111 are color data corresponding to color materials of four colors, i.e., cyan (C), magenta (M), yellow (Y), and black (K). In other words, image data to be input to the printer engine 111 includes low-grayscale (two- to 16-gray level) CMYK image data.
In this way, by transferring image data generated by the image processing apparatus 103 to the printer engine 111 of the image output apparatus 104, an image is printed on the sheet surface, thus completing print processing based on the drawing command output from the host computer 101.
Print processing of a bitmap image input from an image input apparatus 102 such as a scanner 109, digital camera 110, or the like will be described below.
The scanner 109 optically scans an image printed on a paper sheet, film, or the like, and analog-to-digital (A/D) converts a signal according to the intensity of the reflected or transmitting light, thus reading a bitmap image. The digital camera 110 acquires a bitmap image of an object by A/D-converting a signal according to the intensity of light output from a device such as a CCD or the like. A bitmap image output from such image input apparatus 102 is normally an RGB image.
The image processing apparatus 103 converts the bitmap image input from the scanner 109 or digital camera 110 into low-grayscale CMYK image data using the input image processor 106 and output image processor 107. By transferring the CMYK image data to the printer engine 111 of the image output apparatus 104, an image is printed on a sheet surface. In this way, the print processing of the bitmap image output from the image input apparatus 102 is completed.
In order to improve the print image quality in the processes of the image data, attribute information indicating a feature of an image region where each pixel of image data exists is appended to that pixel in some cases. That is, attribute information indicating a feature of an image region such as a photo region, text region, or the like is appended to each pixel, and image processing of the image processing apparatus 103 and image output apparatus 104 is switched based on that attribute information. In this way, optimal image quality to each image region can be provided (for example, Japanese Patent Laid-Open No. 2000-259819).
Also, a dither matrix used in the pseudo halftone processing is switched depending on data types such as image, graphics, text, and the like included in the drawing command. Furthermore, a lookup table (LUT) used in color conversion from RGB data into CMYK data is switched, thus improving the image quality. A practical example will be described below. The drawing command processor 105 generates a bitmap image upon rasterizing the drawing command, generates attribute signals indicating image regions in which respective pixels of the bitmap image are included at the same time, and stores them in the storage unit 108. The output image processor 107 discriminates an image region in which each pixel that forms the bitmap image is included by reading out each attribute signal from the storage unit 108, thereby switching the color conversion processing and pseudo halftone processing. In this manner, the image processing can be switched depending on the types of data included in the drawing command.
As for an image input from the scanner 109, the image processing can be switched for respective image regions. In this case, the input image processor 106 applies image region discrimination using, e.g., pattern matching to the input bitmap image. Also, the input image processor 106 discriminates an image region such as a photo region or text region, a chromatic region or achromatic region, a halftone dot region, or the like, and pixels which form that region. The input image processor 106 generates attribute signals based on this discrimination result, and stores them in the storage unit 108.
The input image processor 106 reads out the attribute signal from the storage unit 108 and applies processing for emphasizing the sharpness of a character by emphasizing the high-frequency component of an image to each pixel of the text region. Also, the input image processor 106 applies so-called low-pass filter processing to each pixel of the halftone dot region to remove, e.g., moiré components unique to a scanned image.
The output image processor 107 reads out the attribute signal from the storage unit 108, and executes image processing such as color conversion processing, pseudo halftone processing, and the like based on the attribute signal, thus converting the bitmap image into the image format that can be output to the printer engine 111. In this manner, the image processing can be switched for respective image regions that have undergone the image region discrimination.
In consideration of application of more advanced image processing corresponding to each image region, the image regions must be classified more finely in correspondence with their image characteristics. Also, the drawing command often describes data types of more detailed levels. When such classification of image regions is done, a larger number of attribute signals are required.
FIG. 2 shows an example of attribute signals corresponding to four different image regions, i.e., a text region, graphics region, photo region, and line drawing region.
Referring to FIG. 2, bit 0 of an attribute signal indicates graphics characteristics, and bit 1 indicates text characteristics. Therefore, an attribute signal ‘10’ indicates a text region; ‘01’, a graphics region; and ‘00’, a photo region. In addition, ‘11’ is defined as “line drawing”, and can represent a line drawing region.
FIG. 3 shows an example of attribute signals when image regions are classified more finely.
For example, when an attribute associated with an under color removal (UCR) setting (whether or not to perform, e.g., 100% UCR) is appended to each pixel, a bit indicating gray characteristics (bit 0 in FIG. 3) is added. When an attribute associated with a small letter or fine line is to be appended, a bit indicating fine or small characteristics (bit 3 in FIG. 3) is added.
If a larger number of pieces of attribute information are prepared so as to attain advanced input image processing and output image processing, the number of bits of each attribute signal increases, thus increasing the data size of the signal. For this reason, the storage capacity consumed by the storage unit 108 that holds attribute signals may increase, and generation, write, and read speeds of attribute signals may decrease. To solve such problems, for example, the bitmap image may be converted into a low-resolution image or some bits may be deleted. However, such solutions result in poor image quality.
The present applicant has proposed a method of avoiding the aforementioned problems by determining the format of attribute signals based on information of connected external apparatuses. However, the limited number of bits of each attribute signal cannot often express a detailed image region (for example, Japanese Patent Lald-Open No. 2004-112695).